package com.ztorn.fiscale.domain;

import java.math.BigDecimal;

import com.ztorn.common.core.annotation.Excel;
import com.ztorn.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 订单商品明细对象 fiscale_order_item
 *
 * @author ztorn
 * @date 2025-01-18
 */
public class FiscaleOrderItem extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 明细ID */
    private Long itemId;

    /** 订单ID */
    @Excel(name = "订单ID")
    private Long orderId;

    /** 商品SKU */
    @Excel(name = "商品SKU")
    private String productSku;

    /** 商品名称 */
    @Excel(name = "商品名称")
    private String productName;

    /** 商品名称 */
    @Excel(name = "商品名称(英文)")
    private String productNameEn;

    /** 商品图片URL */
    private String productImage;

    /** 规格标题 */
    @Excel(name = "规格标题")
    private String variantTitle;

    /** 数量 */
    @Excel(name = "数量")
    private Integer quantity;

    /** 单价 */
    @Excel(name = "单价")
    private BigDecimal unitPrice;

    /** 小计 */
    @Excel(name = "小计")
    private BigDecimal totalPrice;

    /** 重量 */
    @Excel(name = "重量(kg)")
    private BigDecimal weight;

    /** HS编码 */
    @Excel(name = "HS编码")
    private String hsCode;

    /** 申报价值 */
    @Excel(name = "申报价值")
    private BigDecimal customsValue;

    /** 原产国 */
    @Excel(name = "原产国")
    private String originCountry;

    /** 规格型号 */
    @Excel(name = "规格型号")
    private String specification;

    /** 单位 */
    @Excel(name = "单位")
    private String unit;

    /** 国家或地区 */
    @Excel(name = "原产国")
    private String countryOfOrigin;

    /** 品牌 */
    @Excel(name = "品牌")
    private String brand;

    /** 型号 */
    @Excel(name = "型号")
    private String model;

    public void setItemId(Long itemId)
    {
        this.itemId = itemId;
    }

    public Long getItemId()
    {
        return itemId;
    }

    public void setOrderId(Long orderId)
    {
        this.orderId = orderId;
    }

    public Long getOrderId()
    {
        return orderId;
    }

    public void setProductSku(String productSku)
    {
        this.productSku = productSku;
    }

    public String getProductSku()
    {
        return productSku;
    }

    public void setProductName(String productName)
    {
        this.productName = productName;
    }

    public String getProductName()
    {
        return productName;
    }

    public void setProductImage(String productImage)
    {
        this.productImage = productImage;
    }

    public String getProductImage()
    {
        return productImage;
    }

    public void setVariantTitle(String variantTitle)
    {
        this.variantTitle = variantTitle;
    }

    public String getVariantTitle()
    {
        return variantTitle;
    }

    public void setQuantity(Integer quantity)
    {
        this.quantity = quantity;
    }

    public Integer getQuantity()
    {
        return quantity;
    }

    public void setUnitPrice(BigDecimal unitPrice)
    {
        this.unitPrice = unitPrice;
    }

    public BigDecimal getUnitPrice()
    {
        return unitPrice;
    }

    public void setTotalPrice(BigDecimal totalPrice)
    {
        this.totalPrice = totalPrice;
    }

    public BigDecimal getTotalPrice()
    {
        return totalPrice;
    }

    public void setWeight(BigDecimal weight)
    {
        this.weight = weight;
    }

    public BigDecimal getWeight()
    {
        return weight;
    }

    public void setHsCode(String hsCode)
    {
        this.hsCode = hsCode;
    }

    public String getHsCode()
    {
        return hsCode;
    }

    public void setCustomsValue(BigDecimal customsValue)
    {
        this.customsValue = customsValue;
    }

    public BigDecimal getCustomsValue()
    {
        return customsValue;
    }

    public void setOriginCountry(String originCountry)
    {
        this.originCountry = originCountry;
    }

    public String getOriginCountry()
    {
        return originCountry;
    }

    public String getSpecification()
    {
        return specification;
    }

    public void setSpecification(String specification)
    {
        this.specification = specification;
    }

    public String getUnit()
    {
        return unit;
    }

    public void setUnit(String unit)
    {
        this.unit = unit;
    }

    public String getCountryOfOrigin()
    {
        return countryOfOrigin;
    }

    public void setCountryOfOrigin(String countryOfOrigin)
    {
        this.countryOfOrigin = countryOfOrigin;
    }

    public String getBrand()
    {
        return brand;
    }

    public void setBrand(String brand)
    {
        this.brand = brand;
    }

    public String getModel()
    {
        return model;
    }

    public void setModel(String model)
    {
        this.model = model;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("itemId", getItemId())
            .append("orderId", getOrderId())
            .append("productSku", getProductSku())
            .append("productName", getProductName())
            .append("productNameEn", getProductNameEn())
            .append("productImage", getProductImage())
            .append("variantTitle", getVariantTitle())
            .append("quantity", getQuantity())
            .append("unitPrice", getUnitPrice())
            .append("totalPrice", getTotalPrice())
            .append("weight", getWeight())
            .append("hsCode", getHsCode())
            .append("customsValue", getCustomsValue())
            .append("originCountry", getOriginCountry())
            .append("specification", getSpecification())
            .append("unit", getUnit())
            .append("countryOfOrigin", getCountryOfOrigin())
            .append("brand", getBrand())
            .append("model", getModel())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }

    public String getProductNameEn() {
        return productNameEn;
    }

    public void setProductNameEn(String productNameEn) {
        this.productNameEn = productNameEn;
    }
}
